CREAT

#include <sys\types.h>
#include <sys\stat.h>
#include <io.h>       требуется только для объявления функций.
                                  
int creat(pathname, pmode);
char *pathname;       path-имя нового файла
int pmode;            разрешенный режим доступа

Описание.
Функция creat либо создает новый файл, либо открывает и обновляет (усекает до длины 0) существующий файл. Если существует файл, определяемый path-именем, то создается новый файл с заданным режимом доступа и являющийся открытым для записи. Если файл существует и его режим доступа позволяет запись, тогда функция creat усекает файл к длине 0, уничтожая все содержимое, и одновременно открывает файл.
Разрешенный режим доступа - pmode - применяется только для вновь созданных файлов. Новый файл получает установленный режим доступа после первого его закрытия. Целое выражение pmode состоит из одной или нескольких манифестных констант - S_IWRITE и S_IREAD, объявленных в <sys\stat.h>. Если задаются обе константы, они объединяются при помощи логического OR (:). Значение аргумента pmode приводится ниже.

КОНСТАНТА              	СМЫСЛОВОЕ  ЗНАЧЕНИЕ
S_IWRITE               	разрешает запись
S_IREAD                	разрешает чтение
S_IREAD:S_IWRITE       	разрешают чтение и запись

Если запись не разрешена, файл предназначен только для чтения. В MS DOS нельзя разрешить только запись. Поэтому режимы S_IWRITE и S_IREAD: S_IWRITE являются эквивалентными.
В версиях MS DOS 3.0 и старших файлы, открываемые при помощи creat, всегда открываются в совмещенном режиме (compatibility mode).
Функция creat перед установкой флага доступа присваивает pmode маске доступа (подробно об этом смотрите umask).

Возвращаемое значение.
В случае успешного вызова эта функция возвращает handle на созданный файл. Возвращаемое значение -1 свидетельствует об ошибке; errno устанавливается в одно из следующих значений:

ВОЗВРАЩАЕМАЯ              		СМЫСЛОВОЕ  ЗНАЧЕНИЕ
ВЕЛИЧИНА
      
EACCES           			Path-имя   определяет    существующий
                             	файл   только   для    чтения     или
                             	определяет директорий вместо файла
            
EMFILE           			другие  handle-ры  файла не пригодны,
                             	т.к. много открытых файлов
            
ENOENT           			path-имя не найдено.

Замечание.
Процедура create обеспечивает первоначальную совместимость с предыдущими библиотеками. Вызов open при помощи значений O_CREAT и O_TRUNC, определенных в аргументе oflag, является зквивалентным и предпочтительным для нового кода.

Пример:

            
#include <sys\types.h>
#include  <sys\stat.h>
#include  <io.h>
#include  <stdlib.h>
            
int fh;
            
fh = creat("data", S_IREAD|S_IWRITE);
            
if (fh == -1)
                perror("Couldn't create data file");
Hosted by uCoz